package com.tencreat.domain.mall.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.tencreat.common.annotation.Excel;
import com.tencreat.domain.mall.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.List;

@Getter
@Setter
public class MallGoodsDetailsVO {

    @ApiModelProperty(value = "商品id")
    private Long id;

    @ApiModelProperty(value = "商品封面图")
    private String picUrl;

    @ApiModelProperty(value = "3d预览图")
    private String threeDUrl;

    @ApiModelProperty(value = "标题")
    private String name;

    @ApiModelProperty(value = "消费券售价")
    private BigDecimal retailPrice;

    @ApiModelProperty(value = "二级标题")
    private String brief;

    @ApiModelProperty(value = "详情介绍")
    private String detail;

    @ApiModelProperty(value = "品牌商id")
    private Long brandId;

    @ApiModelProperty(value = "品牌名")
    private String brandName;

    @ApiModelProperty(value = "品牌图片")
    private String brandUrl;

    @ApiModelProperty(value = "商品宣传图片列表")
    private List<String> gallerys;

    @ApiModelProperty(value = "是否新品首发")
    private Boolean isNew;

    @ApiModelProperty(value = "是否人气推荐 1-是 0-否")
    private Integer isHot;

    @ApiModelProperty(value = "商品单位")
    private String unit;

    @ApiModelProperty(value = "商品库存")
    private Long inventory;

    @ApiModelProperty("预计销量")
    private Long expectCommoditySales;

    @ApiModelProperty(value = "商品销量")
    private Long commoditySales;

    @ApiModelProperty(value = "折扣")
    private String salesDiscount;

    @ApiModelProperty(value = "物流方式")
    private Long logisticsId;

    @ApiModelProperty(value = "物流编号")
    private String shipSn;

    @ApiModelProperty(value = "物流公司")
    private String shipChannel;

    @ApiModelProperty(value = "评论列表")
    private List<MallComment> comments;

    @ApiModelProperty(value = "规格列表")
    private List<MallGoodsNorms> norms;


    @ApiModelProperty(value= "是否是品牌 0-否 1-是")
    private Integer brand;

    @ApiModelProperty(value= "是否是爆款 0-否 1-是")
    private Integer burst;


    @ApiModelProperty(value= "购买人数")
    private Integer buyers ;

    @ApiModelProperty(value = "上架时间")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm")
    private LocalDateTime shelfTime;

    @ApiModelProperty("截止时间")//商品售卖结束时间
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime saleEndTime;


    @ApiModelProperty("营业时间开始")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
    private LocalTime businessStartTime;

    @ApiModelProperty("营业时间结束")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
    private LocalTime businessEndTime;

    @ApiModelProperty("核销时间")//商品售卖结束时间
//    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private String verificationTime;

    @ApiModelProperty("店名")//
    private String storeName;


    /** 行政区域表的省ID */
    @ApiModelProperty(value= "行政区域表的省ID")
    private Long province;

    /** 行政区域表的市ID */
    @ApiModelProperty(value= "行政区域表的市ID")
    private Long city;

    /** 行政区域表的区县ID */
    @ApiModelProperty(value= "行政区域表的区县ID")
    private Long county;
    /**
     * 省市区拼接
     */
    @ApiModelProperty(value = "详细地址")
    private String address;

    @ApiModelProperty(value = "店铺封面图")
    private String storeImg;

    @ApiModelProperty(value= "评分， 1-5")
    private Integer star;

    @ApiModelProperty(value= "距离")
    private BigDecimal distance;

    @ApiModelProperty(value= "店铺资质")
    private String qualification;


    @Excel(name = "经度")
    @ApiModelProperty(value= "经度")
    @TableField(value = "longitude")
    private String longitude;

    @Excel(name = "维度")
    @ApiModelProperty(value= "维度")
    @TableField(value = "dimensionality")
    private String dimensionality;

    @ApiModelProperty("店铺id")
    private Long storeId;

    @ApiModelProperty("店铺二级分类")
    private String categoryName;
    @ApiModelProperty("套餐分类名")
    private  String setmealName;

    @ApiModelProperty(value= "店铺分类 0 美食 1 医疗")
    private String storeType;


    @ApiModelProperty("店铺商品可用时间")
    private String useTime;

    @ApiModelProperty(value= "指定商品集合")
    private List<MallGoods> goods;

//    @ApiModelProperty(value= "指定商品集合")
//    private List<MallGoods> goods;
}
